package com.starhub.application.collection.service;

import java.util.List;

import com.starhub.application.collection.dto.DataDefinitionDto;
import com.starhub.application.collection.dto.DataDefinitionLinkDto;

/**
 * 数据定义服务接口
 * @version: V1.0
 * @author: liuhf
 * @time 2025-06-06
 */
public interface DataDefinitionService {
    
    /**
     * 创建数据定义
     * @param dataDefinitionDto 数据定义信息
     * @return 是否创建成功
     */
    boolean createDataDefinition(DataDefinitionDto dataDefinitionDto);

    /**
     * 更新数据定义
     * @param dataDefinitionDto 数据定义信息
     * @return 是否更新成功
     */
    boolean updateDataDefinition(DataDefinitionDto dataDefinitionDto);

    /**
     * 删除数据定义
     * @param id 数据定义ID
     * @return 是否删除成功
     */
    boolean deleteDataDefinition(DataDefinitionDto dataDefinitionDto);

    /**
     * 添加元数据关联设置
     * @param dataDefinitionLinkDto 数据定义关联DTO
     * @return 是否添加成功
     */
    boolean addLink(DataDefinitionLinkDto dataDefinitionLinkDto);

    /**
     * 删除元数据关联设置
     * @param dataDefinitionLinkDto 数据定义关联DTO
     * @return 是否删除成功
     */
    boolean removeLink(DataDefinitionLinkDto dataDefinitionLinkDto);

    /**
     * 获取元数据关联设置
     * @param mainCollection  主数据表ID
     * @return 元数据关联设置
     */
    List<Long> getLinks(Long mainCollection);
}
